Edge devices for providing a transparent LAN segment service and configuring such edge devices

ABSTRACT

A transport LAN segment service is provided over a transport network. The transport network will include edge devices configured to support one or more transparent LAN segments. Configuration is simplified by advertising TLS-port-label information, layer 2 address learning, and multicasting when the needed configuration information has not yet been learned or discovered.

§ 0. RELATED APPLICATIONS

Benefit is claimed, under 35 U.S.C. § 119(e)(1), to the filing date ofprovisional patent application Ser. No. 60/325,344, entitled “SUPPORT OFTRANSPARENT LAN SEGMENT”, filed on Sep. 26, 2001 and listing YakovRekhter as the inventor, for any inventions disclosed in the mannerprovided by 35 U.S.C. § 112, ¶1. That provisional application isexpressly incorporated herein by reference.

§ 1. BACKGROUND OF THE INVENTION

§ 1.1 Field of the Invention

The present invention concerns methods, apparatus and data structuresfor providing a transport network that supports a virtual LAN service.More specifically, the present invention concerns emulating atransparent LAN segment to support a virtual LAN. The present inventionalso concerns configuring such a network.

§ 1.2 Related Art

The description of art in this section is not, and should not beinterpreted to be, an admission that such art is prior art to thepresent invention.

§ 1.2.1 Known Private Networking Technologies

For many entities (such as businesses, universities, etc.), local areanetworks (or “LANs”) suffice for intra-entity communications. Indeed,LANs are quite popular since they are relatively inexpensive to deploy,operate, and manage, and are based on mature, well-developed technology,such as Ethernet, for example. Unfortunately, however, most entitiesneed to communicate (voice and/or data) with their own facilities, orothers, beyond their immediate location. Thus, wide area networks (or“WANs”) are needed. Very often, entities want at least some privacy orsecurity attached to their communications.

Presently, private long-haul communications can take place over networksthat can be generally classified into two types—dedicated WANs thatfacilitate communications among multiple sites, and public transportnetworks that allow one or more sites of a private network tocommunicate. Both of these types of networks are introduced below.

§ 1.2.1.1 Dedicated WANs

Dedicated wide area networks (“WANs”) are typically implemented usingleased lines or dedicated circuits to connect multiple sites. Customerpremise equipment (“CPE”) routers or switches at these sites connectthese leased lines or dedicated circuits together to facilitateconnectivity between each site of the network. Most private networkswith a relatively large number of sites will not have “fully meshed”networks (i.e., direct connections between each of the sites) due to thecost of leased lines or dedicated circuits and to the complexity ofconfiguring and managing customer premises equipment. Rather, some formof hierarchical network topology is typically employed in suchinstances. Dedicated WANs are relatively expensive and typically requirethe customer to have some networking expertise.

§ 1.2.1.2 Virtual Private Networks

Public transport networks, which are typically deployed by regional belloperating companies (or “RBOCs”), or some other service provider, areoften used to allow remote users to connect to an enterprise networkusing the public-switched telephone network (or “PSTN”), an integratedservices digital network (or “ISDN”), or some other type of transportnetwork technology. (Note that the word “public” in the phrase “publictransport network” connotes the fact that more than one entity may useit, even though it may be privately owned and managed, and not availableto the general public.) Such remote access may be facilitated bydeploying network access servers (or “NASs”) at one or more centralcites. When users connect to (e.g., dial into) a NAS, it works withauthentication, authorization and accounting (or “AAA”) servers toverify the identity of the user and to check which services that user isauthorized to use.

§ 1.2.2 Limitations of Known Transport Network Technologies

As can be appreciated, private dedicated WANs are beyond the financialreach of many entities. Accordingly, so-called public transport networkshave become quite popular. Unfortunately, however, various incompatiblepublic transport networks have been introduced over the years inresponse to the then perceived needs to support various applications.Examples of such public transport network technologies include switchedmultimegabit data service (“SMDS”), X.25 packet switched networks, framerelay, broadband ISDN, and asynchronous transport mode (“ATM”).

The fact that public transport networks use incompatible technologieshas two onerous implications for service providers. First, technologieswith which customers access the transport network (referred to as“access technologies”) must be compatible with the technology used inthe transport network (unless there is a handoff between networks, whichis expensive). Thus, customers are locked into a technology fromend-to-end. Further, such dependencies between access technologies andtransport network technologies have forced public transport networkservice providers to support, maintain and administer separate networks.

Thus, an alternative public transport network is needed. Such a publictransport network should (i) support the provision of virtual privatenetwork functions, (ii) isolate the transport network from incompetentor malicious actions by customers, (iii) be easy for a service providerto deploy (provision and configure) and manage, and/or (iv) allowcustomers to use a mature technology that is easy to install, use andmanage, such as Ethernet for example, while shielding them from thecomplexities of the transport network.

§ 2 SUMMARY OF THE INVENTION

The present invention may be use to (i) provide data transport that canact as a transparent LAN segment, (ii) facilitate the provisioning oneor more such a transparent LAN segments, and (iii) facilitate theconfiguration of the transport network, including the service provideredge devices, to support a provisioned transparent LAN segment service.

As a packet destined for a particular device (as defined by a layer 2,e.g., MAC, destination address) is forwarded from a source device on afirst LAN to a destination device on a second LAN, where both the firstand second LANs are coupled via a transparent LAN segment, it maytraverse a path having three basic parts; namely, (i) from the first LANto an associated ingress service provider edge device, (ii) from thatingress service provider edge device to an egress service provider edgedevice associated with the second LAN having the destination device, and(iii) from that egress service provider edge device to the second LAN.The second part of the path—from the ingress service provider edgedevice to the egress service provider edge device—may exploit knownlabel switched path forwarding techniques.

Using the present invention, an ingress PE router R1 can cause a packetto be delivered to the egress PE router R2 by pushing some label ontothe packet and sending the result to one of its adjacencies. This labelis referred to as the “tunnel label”, and the corresponding labelswitched path is referred to as the “tunnel LSP”. Such tunnel LSPs couldbe established via known protocols such as BGP, LDP, RSVP, for example.The tunnel LSP merely gets packets from the ingress PE router R1 to theegress PE router R2—the corresponding tunnel label doesn't tell theegress PE router R2 what to do with the payload. In fact, if penultimatehop popping is used, the egress PE router R2 may never even see thecorresponding tunnel label. (If the ingress PE router R1 itself is thepenultimate hop, a tunnel label may not even get pushed on.) The presentinvention may be used to provide an additional label, which is madeavailable to the egress PE router R2 (it may be encapsulated by thetunnel label so that it is preserved), and which is used by the egressPE router R2 to determine how to treat the received packet. This labelis referred to as the “TLS label”.

At the edge of the transport network, each service provider edge devicemay have one or more ports that the service provider uses to couple acustomer's LAN to the service provider's transport network. A given(logical) port on a service provider edge device PE could be used toconnect to only one virtual TLS. Thus a given (logical) port belongs toone TLS. However, if VLANs are to be supported, a logical port may beassociated with a particular VLAN, and a physical port should be able tosupport multiple VLANs and hence, multiple logical ports.

The present invention may also be used to configure transparent LANsegments (TLSs) on a transport network by (i) providing layer 2 (MAC)forwarding information regarding the TLS to service provider edgedevices (PEs) (preferably servicing at least one port of the TLS), and(ii) learning which devices (e.g., as identified by a layer 2, (e.g.,MAC) address) belong to a TLS and where such devices are coupled withthe TLS.

To avoid the need to make global changes (i.e., to all PEs) toconfiguration information each time a port is added to a TLS, thepresent invention may permit the service provider to configure portslocally (i.e., at the given edge device PE having the added port). Thepresent invention may do so by providing (e.g., signaling), to all otherservice provider edge devices (PEs) that support the TLS, an identifierof the service provider edge device, an identifier of the TLS, a portidentifier and label information used by the port. The label informationmay include a label offset (if any), a label base, and a label range.Service provider edge devices (PEs) receiving such signaling may thenupdate a layer 2 (MAC) forwarding information table (an/or TLSinformation) related to the TLS. The service provider edge device (PE)may also update the layer 2 (MAC) forwarding information table relatedto the TLS based on packets received either locally, or from another(remote) service provider edge device (PE). If a forwarding entry for aparticular layer 2 (MAC) destination address is not yet provided,instances of a packet destined to that layer 2 (MAC) address may beforwarded to any and all PEs having at least one port belonging to therelevant TLS. That is, multicasting packets based on “wild card” entriesmay be used as an interim solution until forwarding information for thelayer 2 (MAC) destination device is learned/discovered.

§ 3. BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates an environment in which the present invention may beused.

FIG. 2 illustrates a label-switched path.

FIG. 3 illustrates the operation of a label-switched path.

FIG. 4 is a bubble chart illustrating various operations that may beperformed by, and various information that may be used by, serviceprovider edge devices in accordance with the present invention.

FIG. 5 is a block diagram illustrating the concept of a set oflabel-blocks associated with a (logical) port.

FIG. 6 is a block diagram illustrating an association of transparent LANsegments to ports, as well as an association of ports to labels.

FIG. 7 is a block diagram illustrating an exemplary layer 2 (MAC)forwarding information table and associated information.

FIG. 8 is a flow diagram of an exemplary method that may be used toeffect local (service provider edge device) provisioning operations.

FIG. 9 illustrates the arrangement of drawing sheets including

FIGS. 9A and 9B which collectively illustrate a flow diagram of anexemplary method that may be used to effect ingress service provideredge device forwarding operations.

FIG. 10 is a flow diagram of an exemplary method that may be used toeffect egress service provider edge device forwarding operations.

FIG. 11 is a block diagram illustrating a packet, such as an Ethernetpacket, provided with a transparent LAN segment label and transportinformation.

FIG. 12A illustrates an example of processing data at an ingress serviceprovider edge device, and FIGS. 12B and 12C illustrate examples ofprocessing data at an egress service provider edge device in exemplaryembodiments of the present invention.

FIG. 13 is a flow diagram of an exemplary method that may be used toeffect service provider edge device advertisement generation operations.

FIG. 14 is a block diagram of an exemplary advertisement that may beused in the context of the present invention.

FIG. 15 is a flow diagram of an exemplary method that may be used toeffect layer 2 (e.g., MAC) forwarding information table managementoperations.

FIG. 16 is a block diagram of an apparatus that may be used to effectoperations of the present invention, and to store information usedand/or generated by the present invention.

FIG. 17 is a messaging diagram illustrating exemplary advertisementoperations and layer 2 (MAC) forwarding table update operations in anexemplary embodiment of the present invention.

FIG. 18 is a messaging diagram illustrating exemplary remote and localentry update operations in an exemplary embodiment of the presentinvention.

§ 4. DETAILED DESCRIPTION

The present invention involves novel methods, apparatus and datastructures for providing a transport network that can act as atransparent LAN segment, as well as methods, apparatus and datastructures for provisioning and configuring such a transport network.The following description is presented to enable one skilled in the artto make and use the invention, and is provided in the context ofparticular applications and their requirements. Various modifications tothe disclosed embodiments will be apparent to those skilled in the art,and the general principles set forth below may be applied to otherembodiments and applications. Thus, the present invention is notintended to be limited to the embodiments shown and the inventor regardshis invention as the following disclosed methods, apparatus and datastructures and any other patentable subject matter.

In the following, an exemplary environment in which the invention mayoperate is described in § 4.1. Then, high-level applications that may beperformed by the present invention are introduced in § 4.2. Thereafter,an exemplary service provider edge device (PE) that may be used toeffect various aspects of the present invention is introduced in § 4.3.Then, exemplary methods and data structures that may be effected by andstored by, respectively, a service provider edge device are described in§ 4.4. Thereafter, examples of network configuration and packetforwarding, are provided in § 4.5. Finally, some conclusions regardingvarious aspects of the present invention are provided in § 4.6.

§ 4.1 EXEMPLARY ENVIRONMENT IN WHICH THE PRESENT INVENTION MAY OPERATE

FIG. 1 illustrates an exemplary environment 100 in which the presentinvention may operate. A service provider may operate a transportnetwork 110 to provide a transparent LAN segment service for use by acustomer having multiple LANs 140 at multiple sites. Each of the LANs140 may have a one or more host devices (not shown), and may be coupledwith the transport network 110 via a customer edge (“CE”) device (notshown). The customer edge device may, in turn, be coupled with a serviceprovider edge (“PE”) device 120, such as a router for example. Internalnodes 130, such as routers, may be used to permit communications betweenvarious service provider edge devices 120 of the transport network 110.In this environment 100, a virtual LAN 150 may include LANs 140 a-d, aswell as transparent LAN segments 155 a-c. The transparent LAN segments155 a-c can be thought of as coupling or bridging geographically remoteLANs 140 a-d.

In one exemplary embodiment, the transport network 110 may be alabel-switching network, such as a multi-protocol label switching(“MPLS”) network. FIG. 2 illustrates a label switched path 130′ across anetwork 110′. Notice that label switched paths 130′ may besimplex—traffic flows in one direction from a head-end label switchingrouter (or “LSR”) 120 a′ at an ingress edge to a tail-end labelswitching router 120 c′ at an egress edge. Duplex traffic typicallyrequires two label switched paths—one for each direction. Notice that alabel switched path 130′ is defined by the concatenation of one or morelabel-switched hops, allowing a packet to be forwarded from one labelswitching router (LSR) to another across the MPLS domain 130′.

As is known, a label may be a short, fixed-length value carried in thepacket's header to identify a forwarding equivalence class (or “FEC”).An FEC is a set of packets that are forwarded over the same path througha network even if their ultimate destinations are different.Alternatively, labels needn't be explicitly defined in a packet'sheader. Labels may be inferred. For example, in Generalized MPLS, alabel could be a time slot (e.g., in SONET/SDH cross-connects), or evena port number (e.g., in Optical Cross-Connects).

FIG. 3 illustrates the operation of a label-switched path. The presentinvention may use labels as “tunnel labels” to transport data from aningress service provider edge device to an egress service provider edgedevice. In such a case, at the ingress edge of the network, the router320 a may operate in accordance with the method 450 a′ described withreference to FIG. 9 to assign each packet an initial tunnel label (aswell as a TLS label, described later). More specifically, referring tothe example illustrated in FIG. 3, an ingress label switching router 320a determines a transparent LAN segment based on the port on which theunlabeled packet was received. (Note that if virtual LANs (“VLANs”) aresupported, a port may have multiple VLANs associated with it. In thiscase, a transparent LAN segment is determined based on a combination ofthe port on which the unlabeled packet was received and the VLAN-idcarried in the packet.) Using a layer 2 (MAC) forwarding informationtable associated with the determined transparent LAN segment and ingressport, a destination (e.g., MAC) address 340 of the unlabeled packet isused to determine an inner (TLS) label and an egress edge device. Anappropriate tunnel label is then determined based on the determinedegress edge device. To reiterate, this tunnel label is used forforwarding the packet to the proper egress label switching router 320 c(The TLS label is used for forwarding the packet from the egress labelswitching router 320 c.).

In the MPLS domain, the label switching routers (LSRs) 330 simplyforward the packet using label-swapping. More specifically, when alabeled packet arrives at a label switching router (LSR), the input portnumber and the tunnel label are used as lookup keys into an MPLSforwarding table. When a match is found, the forwarding componentretrieves the associated outgoing label, the outgoing interface (orport), and the next hop address from the forwarding table. The incomingtunnel label is replaced with the outgoing tunnel label and the packetis directed to the outgoing interface for transmission to the next hopin the label switched path. FIG. 3 illustrates such label switching bylabel switching routers (LSRs) 330 a and 330 b.

When the labeled packet arrives at the egress label switching router 320c, the router may operate in accordance with the method 450 b′ describedwith reference to FIG. 10 to determine a port on which to place thepacket based on the layer 2 (e.g., MAC) address of the packet andinformation in a layer 2 (MAC) forwarding information table selectedbased on the TLS label that was applied to the packet at the ingressrouter 320 a.

The forgoing description of the packet forwarding using label switchingpresumed the existence of label switched paths and associated labelentries in forwarding tables. These paths are determined and provided toeach of the label switching routers (LSRs) in the label-switched path(LSP). Such path determination and distribution may be performed usingknown label distribution protocols such as label distribution protocol(“LDP”), resource reservation protocol (“RSVP”) and border gatewayprotocol (“BGP”).

§ 4.2 HIGH-LEVEL APPLICATIONS THAT MAY BE PERFORMED BY THE INVENTION

As described below, a high-level application of the present inventionmay be to provide data transport that can act as a transparent LANsegment. This application is further described in § 4.2.1 below. Anotherhigh-level application of the present invention may be to facilitate theprovisioning one or more such a transparent LAN segments. Thisapplication is further described in § 4.2.2 below. Yet anotherhigh-level application of the present invention may be to facilitate theconfiguration of the transport network, including the service provideredge devices, to support a provisioned transparent LAN segment service.This application is further described in § 4.2.3 below.

§ 4.2.1. Data (Packet) Transport

As a packet destined for a particular device (as defined by a layer 2,e.g., MAC, destination address) is forwarded from a source device on afirst LAN to a destination device on a second LAN, where both the firstand second LANs are coupled via a transparent LAN segment, it traversesa path having three basic parts; namely, (i) from the first LAN to anassociated ingress service provider edge device, (ii) from that ingressservice provider edge device to an egress service provider edge deviceassociated with the second LAN having the destination device, and (iii)from that egress service provider edge device to the second LAN.Exemplary methods and data structures for effecting the first and thirdparts of the path are described in more detail in § 4.4.2 below, withreference to FIGS. 7, 9 and 10. The second part of the path—from theingress service provider edge device to the egress service provider edgedevice—may exploit known label switched path forwarding techniques, asdescribed below in terms of inter-PE connectivity.

Assume it is desired to transport an Ethernet packet from ingress PErouter (R1) to egress PE router (R2), across an intervening MPLS network(Assume that there is a label switched path from R1 to R2.). That is,the ingress PE router R1 can cause a packet to be delivered to theegress PE router R2 by pushing some label onto the packet and sendingthe result to one of its adjacencies. This label is referred to as the“tunnel label”, and the corresponding label switched path is referred toas the “tunnel LSP”. Such tunnel LSPs could be established via knownprotocols such as BGP, LDP, RSVP, for example. The tunnel LSP merelygets packets from the ingress PE router R1 to the egress PE routerR2—the corresponding tunnel label doesn't tell the egress PE router R2what to do with the payload. In fact, if penultimate hop popping isused, the egress PE router R2 may never even see the correspondingtunnel label. (If the ingress PE router R1 itself is the penultimatehop, a tunnel label may not even get pushed on.) Thus the presentinvention provides an additional label, which is made available to theegress PE router R2 (it may be encapsulated by the tunnel label so thatit is preserved), and which is used by the egress PE router R2 todetermine how to treat the received packet. This label is referred to asthe “TLS label”.

According to the present invention, when the ingress PE router R1 sendsa (e.g., an Ethernet) packet to the egress PE router R2, it first pushesa TLS label on its label stack, and then (if R1 is not adjacent to R2)pushes on a tunnel label. The tunnel label gets the packet from theingress PE router R1 to the egress PE router R2. The TLS label is notneeded, and might not even be visible, until the packet reaches theegress PE router R2. To reiterate, the egress PE router R2 forwards thepacket based on the TLS label.

Note that the tunnel could be a GRE encapsulated MPLS tunnel between theingress PE router R1 and the egress PE router R2. In this case, theingress PE router R1 would be adjacent to the egress PE router R2, andonly the TLS label would be used. In such a case, the interveningnetwork need only carry IP packets.

§ 4.2.2 Provisioning Transparent LAN Segments

At the edge of the transport network 110, each of the service provideredge devices (PEs) 120 has one or more ports that the service provideruses to couple a customer's LAN to the service provider's transportnetwork 110. A given (logical) port on a service provider edge device PE120 could be used to connect to only one virtual TLS. Thus a given(logical) port belongs to one TLS. A logical port, in principle, mayinclude more than one physical ports Generally, a physical port willonly belong to one logical port. However, if VLANs are to be supported,a logical port may be associated with a particular VLAN, and a physicalport should be able to support multiple VLANs and hence, multiplelogical ports.

For each TLS offered by a service provider, the service providerprovisions its edge devices (PEs) such that within a given TLS, each(logical) port has a unique number (referred to as “port ID”). Inaddition, for each TLS offered by the service provider, the serviceprovider estimates the number of ports that are to belong to the TLS.Note that this is just an estimate, and from a practical point of viewthe service provider should overprovision this number. For each TLS thathas at least one port on a given service provider edge device (PE), thePE is configured with the estimated number of ports of that TLS.

Exemplary methods and data structures for effecting the provisioning ofports to TLSs, and TLS labels to ports, are described in more detail in§ 4.4.1 below, with reference to FIGS. 5, 6 and 8.

§ 4.2.3 Network Configuration

To avoid the need to make global changes (i.e., to all PEs) toconfiguration information each time a port is added to a TLS, thepresent invention may permit the service provider to configure portslocally (i.e., at the given edge device PE having the added port). Thepresent invention may do so by providing (e.g., signaling), to all otherservice provider edge devices (PEs) that support the TLS, an identifierof the service provider edge device, an identifier of the TLS, a portidentifier and label information used by the port. The label informationmay include a label offset (if any), a label base, and a label range.Service provider edge devices (PEs) receiving such signaling may thenupdate a layer 2 (MAC) forwarding information table (an/or TLSinformation) related to the TLS. Although an advertisement with labelinformation could be broadcast to all PEs of a transport network, andeach of the PEs could save the advertisement, even if it isn't relevantto the PE, for potential future use, having a PE save irrelevantadvertisements imposes extra overhead on PEs. Therefore, a betteralternative is to discard irrelevant advertisements, and have a PE useBGP Route Refresh Capability when a new TLS is added to the PE so thatthe information related to the new TLS can get to relevant PEs.

The service provider edge device (PE) may also update the layer 2 (MAC)forwarding information table related to the TLS based on packetsreceived either locally, or from another (remote) service provider edgedevice (PE). If a forwarding entry for a particular layer 2 (MAC)destination address is not yet provided, instances of a packet destinedto that layer 2 (MAC) address may be forwarded to any and all PEs havingat least one port belonging to the relevant TLS. That is, multicastingpackets based on “wild card” entries may be used as an interim solutionuntil forwarding information for the layer 2 (MAC) destination device islearned/discovered.

Exemplary methods and data structures for effecting various aspects ofconfiguration are described in more detail in § 4.4.3 below, withreference to FIGS. 7 and 13-15.

§ 4.3 EXEMPLARY APPARATUS

FIG. 4 is a bubble chart of operations that may be effected by, and datathat may be stored by, a service provider edge device (PE) to effectvarious aspects of the present invention. Generally, a service provideredge device (PE) will include customer-side port operation(s) 430 andtransport network-side port operation(s) 440. The customer-side portoperation(s) 430 may be coupled with a LAN 432. The transportnetwork-side port operation(s) 440 may terminate links to othercomponents of the transport networks 410. Basically, forwardingoperations 450 are used to forward packets from a customer side-sideport operation 430 or transport network-side port operation 440 to anappropriate one of a customer-side port or a transport network-sideport, as determined based on information in the layer 2 (MAC) forwardinginformation tables (also referred to as “Virtual Forwarding Instances”or “VFIs”) 460, transport network forwarding information 415, and/or TLSinformation 470.

Information in the VFIs, 460 is managed by VFI management operation(s)486. Such operation(s) 486 can use packets received on port operations(including data packets and signaling or control packets), as well astransparent LAN segment information (also referred to as a labelinformation base) 470 to manage the information in the VFIs 460. Thetransparent LAN segment information 470 may be generated by localprovisioning operation(s) 484 (for distributed provisioning locally,such as at the service provider edge device) and/or service providertransparent LAN segment provisioning operation(s) 485 (for centralizedprovisioning). The transparent LAN segment information 470 may beadvertised to other service provider edge devices (not shown), andparticularly those supporting at least one common TLS, usingadvertisement generation operation(s) 482.

FIG. 16 is high-level block diagram of a machine 1600 which may effectone or more of the operations and/or store the data discussed above. Themachine 1600 basically includes a processor(s) 1610, an input/outputinterface unit(s) 1630, a storage device(s) 1620, and a system bus(es)and/or a network(s) 1640 for facilitating the communication ofinformation among the coupled elements. An input device(s) 1632 and anoutput device(s) 1634 may be coupled with the input/output interface(s)1630. Operations of the present invention may be effected by theprocessor(s) 1610 executing instructions. The instructions may be storedin the storage device(s) 1620 and/or received via the input/outputinterface(s) 1630. The instructions may be functionally grouped intoprocessing modules.

The machine 1600 may be a router for example. In an exemplary router,the processor(s) 1610 may include a microprocessor, a network processor,and/or (e.g., custom) integrated circuit(s). In the exemplary router,the storage device(s) 1620 may include ROM, RAM, SDRAM, SRAM, SSRAM,DRAM, flash drive(s), hard disk drive(s), and/or flash cards. At leastsome of these storage device(s) 1620 may include program instructionsdefining an operating system, a protocol daemon, and/or other daemons.In a preferred embodiment, the methods of the present invention may beeffected by a microprocessor executing stored program instructions(e.g., defining a part of the protocol daemon). At least a portion ofthe machine executable instructions may be stored (temporarily or morepermanently) on the storage device(s) 1620 and/or may be received froman external source via an input interface unit 1630. Finally, in theexemplary router, the input/output interface unit(s) 1630, inputdevice(s) 1632 and output device(s) 1634 may include interfaces toterminate communications links.

Naturally, the operations of the present invention may be effected onsystems other than routers. Such other systems may employ differenthardware and/or software.

§ 4.4 EXEMPLARY METHODS AND DATA STRUCTURES

As introduced in § 4.2 above, three high-level applications may beperformed by the present invention—provisioning transparent LANsegments, data forwarding, and configuring service provider edge devicesto support transparent LAN segment service. Exemplary methods and datastructures that may be used to effect these applications are describedin §§ 4.4.1, 4.4.2 and 4.4.3, respectively, below.

§ 4.4.1 Provisioning Transparent LAN Segments of Virtual LANs

FIG. 8 is a flow diagram of an exemplary method 484′/485′ that may beused to effect the provisioning operations 484/485. As indicated by 810and 880, a number of acts can be performed for each service provideredge device (PE). Such acts may be performed locally, at the given PE,although at least some of the provisioning will conform to a TLS-wideplan. Further, as indicated by 820 and 870, a number of acts areperformed for each transparent LAN segment (TLS) that the given serviceprovider edge device (PE) is to support. More specifically, as indicatedby block 830, for each TLS to be supported by the given PE, a (MAC)layer 2 forwarding table (or more generally, a VFI) is associated withthe TLS. An example of a TLS 710-(MAC) layer 2 forwarding table 730association is illustrated in FIG. 7.

As indicated by block 840, for each TLS to be supported by the given PE,(logical) ports are assigned to the TLS. In one exemplary embodiment,the service provider sequentially numbers (starting with 1) the portsthat belong to that TLS, as illustrated by columns 622 of FIG. 6. As aresult, within a given TLS each port has a unique number, thoughdifferent TLSs can have overlapping port numbers. This number isreferred to as “port ID”. Recall that for each TLS, the service providerestimates the number of ports that are to belong to the TLS. Recallfurther that this is just an estimate, and from a practical point ofview the service provider should overprovision this number. For eachport of a TLS, the port is provisioned with a number of TLS labels usedto reach the other ports (or potential future ports) of that TLS.

FIG. 5 illustrates terms used in a naming convention to describeexemplary TLS labels that may be used in the present invention. For eachTLS port configured on a PE, the PE chooses a contiguous group oflabels, with the number of labels in the group being equal to theestimated number of ports to be associated with that TLS. This set isreferred to as a “label-block”. As shown in FIG. 5 and columns 626 and628 of FIG. 6, the smallest label in a label-block is referred to as the“label-base” and the number of labels in the label-block is referred toas the “label-range”. To allow a service provider to add more (logical)ports to particular TLS at a later time, the PE could be provided with anew label-block with n labels, where n is the number of additionalports. This process might be repeated several times if and when moreports are added. As shown in FIG. 5 and column 624 of FIG. 6, to permitthe multiple label-blocks to be distinguished, a block offset is used toidentify the position of a given label-block in the set of label-blocksassociated with a (logical) port. For a label-block m, this label-blockis denoted as “Lm”, its block offset is denoted as “LOm”, its label-baseis denoted as “LBm”, and its label-range is denoted as “LRm”.

Referring back to FIG. 8, as indicated by block 850, on the given PE,(logical) ports that belong to the particular transparent LAN segment(TLS) are associated with the VFI (e.g., a layer 2 (MAC) forwardinginformation table) of that TLS. This association means that theforwarding of data from/to these (logical) ports is to be controlled bythe information in the VFI associated with these (logical) ports.Alternatively, or in addition, TLS information 470 may include a TLSlabel-to-local port mapping which may be used for forwarding. Asindicated by block 860, the TLS and/or VFI are associated with a groupused by a protocol to target the distribution of advertisements. Asshown in FIG. 7, in one exemplary embodiment each VFI is a layer 2 (MAC)forwarding information table having 730 a Route Target BGP ExtendedCommunity 720 associated with it. This community is used by the PE forimporting (i.e., accepting advertisements) and/or exporting (i.e.,sending out advertisements) routing information associated with aparticular TLS.

§ 4.4.2 Data Forwarding

Recall that as a packet destined for a particular device (as defined bya layer 2, e.g., MAC, address) is forwarded from a source device on afirst LAN to a destination device on a second LAN, where both the firstand second LANs are coupled with a transparent LAN segment, it traversesa path having three basic parts; namely, (i) from the first LAN to anassociated ingress service provider edge device (PE), (ii) from thatingress service provider edge device (PE) to an egress service provideredge device (PE) associated with the second LAN having the destinationdevice, and (iii) from that egress service provider edge device to thesecond LAN. (Note that the first and second LANs could be coupled withthe transparent LAN segment via the same PE. In such a case, since onePE serves as both the ingress PE and egress PE, the second part of thepath is not applicable.) Each of these three parts of the forwarding isdescribed below, with reference to FIGS. 3, 4, 7, 9 and 10. First,however, since the data structure of an exemplary layer 2 (MAC)forwarding information table (or VFI) 460′ is used in such forwarding,it is described with reference to FIG. 7.

As shown in FIG. 7, the VFI is a layer 2 (MAC) forwarding informationtable 730 that is associated with a transparent LAN segment 710, a groupused for targeting the distribution of advertisements (e.g., a routetarget BGP extended community) 720 and (logical) ports (not shown). Inthis exemplary embodiment, the VFI is modeled as a table 730 havingthree types of entries—remote, local, and wildcard. A “remote” typeentry includes (a) layer 2 (e.g., MAC) address, (b) a TLS label, and (c)an egress PE. A “local” type entry includes (a) a layer 2 (e.g., MAC)address, and (b) a local outgoing port. Finally, a “wild card” typeentry includes a list of {TLS label, egress PE} tuples. Note that foreach local port that belongs to a particular TLS, the VFI 730 associatedwith the TLS maintains exactly one wild card type entry. Wild card typeentries are used until a MAC address-port or MAC address-TLSlabel-egress PE association is discovered/learned.

Forwarding on the Ingress PE

Recall that a “tunnel” label is used to forward packets over thetransport network 110, from an ingress service provider edge device (PE)to an egress service provider edge device (PE). Recall further that aTLS label is used by the egress PE to select a particular outgoing port.Therefore, the ingress (PE) stacks a TLS label and a tunnel label ontoan incoming packet. Briefly stated, the TLS label and the appropriateegress PE is determined based on information stored in a VFI (e.g., alayer 2 (MAC) forwarding information table). The “tunnel” label isdetermined from information in a forwarding table using the egress PE,the contents of which may be managed using known protocols ortechniques. Finally, recall that a tunnel label might not be needed for“local” forwarding through a single given PE.

FIG. 9 illustrates the arrangement of FIGS. 9A and 9B which collectivelyillustrate a flow diagram of an exemplary method 450 a′ that may be usedto effect at least a part of forwarding operations 450. As indicated bydecision block 905, the main part of the method 450 a′ is invoked uponreceipt of a packet. As indicated by block 910, the ingress PE uses the(logical) port on which the packet was received to select the (MAC)layer 2 forwarding table (or VFI) associated with the port (Recall theport-VFI association performed during provisioning.). Once theassociated (MAC) layer 2 forwarding table (or VFI) is found, the ingressPE searches it for an entry whose MAC address is equal to thedestination MAC address in the packet.

As shown in FIG. 7, the exemplary table 730 includes a column 734including MAC addresses. Also note that the entries (rows) of theexemplary table 730 include a type value 732 which is either (a)“remote”, (b) “local”, or (c) “wild card”. As indicated by 915 of FIG.9, the remaining part of the method 450 a′ is dependent on the type ofthe entry matching the MAC address. If the entry is found, and the entrytype is “local”, then, as indicated by block 920, the ingress PEdetermines the outgoing port of the matching entry. (See, e.g., column738 of FIG. 7.) As indicated by block 925, the ingress PE then sends thepacket out on the outgoing port identified, as specified in the foundentry, before the method 450 a′ is left via RETURN node 960. Since theport is local, that is no egress PE is involved, no “tunnel” label isneeded in this case.

Referring back to 915, if an entry with a matching MAC address is found,and the entry type is “remote”, then, as indicated by block 930, theingress PE determines the TLS label and the egress PE from the foundentry (See, e.g., columns 738 and 739 of FIG. 7.). As indicated by block932, the TLS label is added to the packet. Then, as indicated by block934, the packet with the TLS label is prepared for transport to theegress PE. If a label switched path exists between the ingress andegress PEs, this act may involve providing the packet with the TLSwithin a tunnel label. Then, as indicated by block 936, the resultingpacket is forwarded through the transport network towards the egress PE,before the method 450 a′ is left via RETURN node 960.

Referring back to 915, if neither a local, nor a remote type entry isfound (i.e., if no entry has a matching MAC address), or if thedestination MAC address is either broadcast or multicast, the packet ishandled by using a wild card type entry associated with the port asfollows. The wild card type entry may include a number of {TLS label,egress PE} tuples. More specifically, as indicated by loop 942-950, foreach {TLS label, egress PE} tuple from the wildcard entry, a number ofacts are performed. That is, for each {TLS label, egress PE} tuple fromthe wildcard entry, the ingress PE applies (e.g., prepends) the TLSlabel to (an instance of) the packet as indicated by block 944, preparesthe packet for transport to the egress PE as indicted by block 946, andsends the packet toward the specified egress PE as indicted by block948. Referring, via node A 951, to FIG. 9B, in addition, if there areother ports on the PE associated with the same VFI (i.e., all ports 738of any and all “local” type entries), (an instance of) the packet issent on all these ports. In this case, the TLS label needn't be applied.More specifically, as indicated by loop 952-958, for each “local” typeentry, an outgoing port is determined as indicated by block 954 and (aninstance of) the packet is put on the determined outgoing port asindicated by block 956. The method 450 a′ is then left via RETURN node960.

As can be appreciated from the foregoing, wild card type entries can beused if the port/PE serving the destination MAC address isn't known. Insuch a case, the packet may be multicast to all PEs and ports of the TLSknown to the ingress PE. Although such multicasting is not efficient, itis an interim measure, only used until the ingress PE “learns” or“discovers” the port and PE which serve the device having the relevantMAC address.

Forwarding from the Ingress PE to the Egress PE

The second part of the path—from the ingress service provider edgedevice PE to the egress service provider edge device PE—may exploitknown forwarding techniques, such as known label switched pathforwarding techniques. FIG. 3 illustrates the forwarding of a packet 340with a TLS label encapsulated in a tunnel label. The tunnel label,initially “5”, is changed to “9” by the label-switching router 330 a,and then changed from “9” to “2” by the label-switching router 330 b.

Forwarding on the Egress PE

FIG. 10 is a flow diagram of an exemplary method 450 b′ that may be usedto forward packets received on the egress service provider edge device(PE). As indicated by decision block 1010, the main part of the method450 b′ is triggered upon receipt of a packet (e.g., from a port coupledwith a node of the transport network). At block 1012, the tunnel labelmay be stripped (if it was not already stripped at the penultimate hop,i.e., the node immediately preceding the egress service provider edgedevice). A given PE may support single lookup forwarding, double lookupforwarding, or both. FIG. 10 illustrates operations of an exemplary PEsupporting both. Decision block 1015 is used to determine whether theegress PE is to use single lookup forwarding, or double lookupforwarding. Single lookup forwarding can use the TLS label and TLSinformation 470 to determine a port as indicated by block 1035. The TLSlabel may then be stripped as indicated by block 1040, before the packetis placed on the determined port as indicated by block 1050, before themethod 450 b′ is left via RETURN node 1080. As will be described in §4.3.3 below, with reference to FIG. 15, the TLS label is used for layer2 (e.g., MAC) address learning. Since such learning uses the TLS label,it should be performed before the TLS label is stripped. If the TLSinformation has no mapping of the TLS label to a port, the method 450 b′may try to forward the packet using double lookup forwarding (discussedwith reference to blocks 1020, 1025, 1030, 1040, 1050, 1060 and 1070below).

Referring back to decision block 1015, if double lookup forwarding is tobe used, as indicated by block 1020, an appropriate (MAC) layer 2forwarding information table (or VFI) is determined based on the TLSlabel of the received packet. Then, as indicated by decision block 1025and block 1030, if the VFI has a local type entry with a MAC addressmatching the packet's destination MAC address, using the determined VFItable, an outgoing port is determined based on the destination MACaddress of the packet. (Recall, e.g., columns 734 and 738 of a “local”entry.) As indicated by block 1040, the TLS label may be removed at thispoint. As mentioned above, since layer 2 (MAC) address learning uses theTLS label, it should be performed before the TLS label is stripped.Finally, as indicated by block 1050, the packet is placed on thedetermined outgoing port, before the method 450 b′ is left via RETURNnode 1080. Referring back to decision block 1025, if the VFI does nothave a local type entry with a MAC address matching the packet'sdestination MAC address, then the TLS label may be removed as indicatedby block 1060 and (an instance of) the packet is placed on all localports that belong to the TLS as indicated by block 1070, before themethod 450 b′ is left via RETURN node 1080.

Grouping Ports Belonging to the Same TLS into One Logical Port

As alluded to above, if a PE has several ports that belong to aparticular TLS, instead of assigning port IDs to each such port, the PEcould assign just a single Port ID. Moreover, rather than creating andadvertising label-blocks on a per (physical) port basis, the PE couldcreate and advertise label-blocks just for one (logical) port. Such ascheme would create an association not between a port and a set oflabel-blocks, but between a particular VFI and a set of label-blocks.This scheme assumes that in the label information base maintained by thePE, the labels that are defined by the label-blocks that the PEadvertises to other PEs point not to a particular outgoing interface,but to a particular VFI (the VFI that the label-blocks are associatedwith). Moreover, this scheme assumes that when the PE receives a packetwith a TLS label, to determine where to forward the packet, the PE usesthe TLS label to select a particular VFI, and then performs the lookupin that VFI table using the MAC destination address carried in thepacket. Finally, if the VFI doesn't have a local entry with the matchingMAC address, the PE sends the packet on all the local ports associatedwith the VFI.

§ 4.4.3 Configuration

In the forwarding operations described in § 4.4.2 above, it was assumedthat the VFI (e.g., the layer 2 (MAC) forwarding information table) waspopulated with appropriate entries. Although these entries may bemanually entered and maintained, doing so would be difficult, slow,labor intensive, and subject to human-error. This section describesexemplary ways of maintaining the VFI. Entries of the VFI may begenerated and/or maintained based on advertisements and based on (e.g.,“learned” from) information taken from packets entering or exiting thetransport network. Exemplary methods and data structures for performingsuch advertisement and VFI maintenance are described here.

For each TLS (logical) port configured on a service provider edge device(PE), the PE distributes to other PEs the information about all itslabel-block(s), as well as about the port ID(s) of the PE. As a result,a PE that has a particular TLS configured on it will have informationabout (a) which remote PE(s) has a (logical) port of the TLS with aparticular port ID, and (b) the set of label-blocks that the remote PEadvertises for that particular (logical) port.

FIG. 13 is a flow diagram of an exemplary method 482′ that may be usedto effect an ad generation operation 482. As indicated by block 1310,information related to a (logical) port (e.g., port ID, label-blocks,etc.) is obtained. Recall from FIG. 4 that this may have beenprovisioned and stored in a label information base 470. As indicated byblock 1320, a contiguous set of labels is defined, starting with thelabel base and proceeding to {label base+label range−1}. Then, asindicated by block 1330, an ad is assembled based on this information.FIG. 14 illustrates an exemplary data structure 1400 that may be used toadvertise provisioned TLS-port information. As shown, this exemplarydata structure 1400 may include an identifier of the PE generating thead (e.g., an Internet protocol layer 3 address) 1410, a TLS identifier1420, a (logical) port ID 1430, label-block offset (if any) 1440, alabel base 1450, a label range 1460, and any further information 1470.Referring back to FIG. 13, as indicated by block 1340, the ad is thensent (e.g., multicast) to other PEs. If a full mesh topology is desired,the ad should be send to all other PEs. The method 482′ is then left viaRETURN node 1350. Such ad distribution may be accomplished by using BGP,and is related to the method described in U.S. patent application Ser.No. 09/865,050, entitled “TRANSPORT NETWORKS SUPPORTING VIRTUAL PRIVATENETWORKS, AND CONFIGURING SUCH NETWORKS”, filed on May 24, 2001 byKireeti Kompella. That application is incorporated herein by reference.

A PE receiving an ad may use information in such an ad to add and/ormaintain information in one of its VFIs (e.g., layer 2 (MAC) forwardinginformation tables). Such a PE may also use information in packets toadd or maintain such information. FIG. 15 is a flow diagram of anexemplary method 486 that may be used to effect a VFI managementoperation(s) 486. In the exemplary method 486′, 1510 can determinewhether or not various trigger events occur. The trigger events includethe receipt of an advertisement, the receipt of a packet on a local portand the receipt of a packet (directly or indirectly) from anotherservice provider edge device (PE).

When a PE receives a TLS advertisement, it checks if the received RouteTarget Community (or more generally, a group used for targeting thedistribution of the ads) matches that of any of its VFIs (Recall, e.g.,720 and 730 of FIG. 7.) as indicated by decision block 1520. If not, thePE may store the advertisement for future use (for example, if a port ofthe PE is provisioned to the TLS later), or may discard it as indicatedby block 1525, before the method 486′ is left via RETURN node 1570. IfBGP is used as the auto-discovery and signaling protocol, a PE can usethe BGP Route Refresh capability to learn all the discardedadvertisements pertaining to a TLS at a later time, if and when the TLSis configured on the PE. Referring back to decision block 1520, if, onthe other hand, the ad's route target community matches that associatedwith any of the PE's VFIs, the wild card VFI entry is updated as basedon the (e.g., BGP) information a PE receives from other PEs.Specifically, when the PE receives an (e.g., BGP) update from some otherPE, and the Route Target on the update matches the route targetconfigured for a particular VFI on the local PE, the PE sets a {label,egress PE} tuple of the wild card type entry for a particular logicallocal port associated with that VFI as indicated by block 1530, beforethe method 486′ is left via RETURN node 1570. More specifically, theegress PE of the wild card type entry may be set to the address carriedin the NEXT_HOP of the update. The label in the wild card type entry fora local port with the Port ID k, may be set to LBm+k−LOm, where thelabel-block m satisfies LOm<=k<LOm+LRm.

Referring back to 1510, when a PE receives a local (ingress) packet, itmay update or add a “local” type of the VFI associated with the localport entry. More specifically, as indicated by block 1540, the “local”type VFI entries on a PE may be updated using the packets that the PEreceives on the (local) ports associated with the TLS that the VFI isassociated with. For example, when a PE receives a packet on one of itslocal ports, the PE creates a “local” type entry in the VFI that theport is associated with. In the “local” type entry, the MAC address 734is set to the MAC source address in the packet, and the outgoing port738 is set to the port on which the packet was received. The method 486′is then left via RETURN node 1570.

Referring back to 1510, when a PE receives a packet from some other PE(also referred to as a “remote packet” or an “egress packet”), it mayupdate or add a “remote” type VFI entry. More specifically, as indicatedby block 1550, the PE may use the TLS label of the packet to determinethe ingress PE and the port on the ingress PE where the packet camefrom. This may be done as follows. First the PE searches through thelabel-blocks that it advertises (or had advertised) to other PEs for theblock m that satisfies LBm<=TLS_label<LBm+LRm. (Recall label informationbase 470 of FIG. 4.) Once the label-block that satisfies the conditionis found, the port ID of the ingress port is defined asLOm+TLS_label−LBm. The TLS label also identifies a particular VFI, andtherefore a particular TLS that has this port. Using this port ID andthe BGP routing information that the PE received from other PEs, the PEcan determine the address of the ingress PE. (Recall fields 1410 and1430 of the ad 1400 of FIG. 14.) Once the PE determines the ingress PEand the port on the ingress PE where the packet came from, as indicatedby block 1560, the PE creates a “remote” type entry with the MAC address734 set to the MAC source address in the packet, the egress PE 739 setto the address (or some other identifier) of the ingress PE, and the TLSlabel 736 set to a value determined as follows. Denoting the port ID ofthe port on the ingress PE as k, the TLS label in the “remote” typeentry is set to LBm+k−LOm, where the label-block m satisfiesLOm<=k<LOm+LRm. (Note that the above could be precomputed, so that whenthe PE receives a packet with a TLS label, a single table lookup on thislabel would produce both the address of the ingress PE (the PE where thepacket came from), and the TLS label that should go into the VFI table“remote” type entry.) The method 486′ may then be left via RETURN node1570.

As indicated by the foregoing, labels provide the egress PE with theinformation about the ingress PE and the port on the ingress PE wherethe packet came from. This is used by the egress PE for what is known as“MAC address learning”, and specifically for discovering a particular{PE, port} pair that should be used to reach a particular MAC address.

As PE advertises a set of label-blocks associated with a given PE's port(means the advertisement carries the Port ID of that port), the PEinstalls all labels from this set in its Label Information Base with theport as the outgoing interface. As a result, when the PE receives apacket with any label that belongs to the set, the PE would send thepacket (after stripping the label) over the port associated with theset.

§ 4.4.4 Supporting VLAN Flooding Scope

Each customer port on a PE, in addition to being associated with aparticular TLS, could be also associated (e.g., via provisioning) withone of more VLANs of that TLS. In such a case VLAN membershipinformation may be distributed (e.g., as part of BGP updates by using aVLAN Extended Community attribute). When a PE receives a BGP Update thatcarries a TLS advertisement, it checks if the received Route Targetcommunity matches any TLS that it is a member of (just like it does inthe absence of VLAN flooding scope). If there is a match, then the PEfurther checks whether any of the VLANs Extended Community attributes ofthat update match any of the VLANs associated with the TLS. Only if thematch is found, the VFI associated with that TLS is updated with thereceived information. Alternatively, a TLS could be associated with asingle VLAN. In such a case, the TLS procedures described could beapplied.

To support VLAN flooding scope, each VFI entry may be extended toinclude not just the MAC address, but also an associated VLAN tag. Insuch a case, the lookup in the VFI would be performed based on a {MACaddress, VLAN tag} tuple. To reiterate, alternatively, a TLS could beassociated with a single VLAN. In such a case, the TLS proceduresdescribed could be applied.

§ 4.5 EXEMPLARY OPERATIONS

Examples illustrating exemplary provisioning, configuration andforwarding operations in an exemplary embodiment of the presentinvention are now provided.

§ 4.5.1 Provisioning and Configuration Example

An example of provisioning a transparent LAN segment (TLS) and ofdisseminating (e.g., advertising) and learning or discoveringconfiguration information in accordance with the present invention isnow described with reference to FIGS. 5, 7-9, 15, 17 and 18.

Referring first to FIG. 17, which is a messaging diagram illustratingexemplary advertisement operations in an exemplary embodiment of thepresent invention in which service provider edge devices PE0 and PE2have ports that belong to TLS=i. More specifically, PE0 includes ports,identified as Port ID=0 and Port ID=1, of TLS=i, and PE2 includes aport, identified as Port ID=4, of TLS=i. (Recall, e.g., block 840 ofFIG. 8.) Note that although the Port IDs can be provisioned centrally,or locally at each PE, the provision of Port IDs for a given TLS will bein accordance with a global (e.g., service provider-wide or transportnetwork-wide) plan.

At PE0, Port ID 0 has a first label-block with a label-block offset of0, label base of 1000, and a range of 10. (Recall, e.g., FIG. 5.) Inthis example, suppose that more labels were needed. To accommodate thisfurther need, a second label-block with a label-block offset of 10, alabel base of 1100 and a range of 9 is also provided. Also at PE0, PortID 1 has a label-block with a label-block offset of 0, a label base of2000 and a range of 20. This information is distributed to other PEs(particularly those that support TLS=i) as indicated by advertisement1710. Note that although the advertisement 1710 is indicated as a singlemessage (Recall, e.g., FIG. 14.), the information could be carried inmultiple advertisements. Similarly, at PE2, Port ID 4 has a firstlabel-block with a label-block offset of 0, a label base of 4000, and arange of 15. This information is distributed to other PEs (particularlythose that support TLS=i) as indicated by advertisement 1720. Note thatalthough the label numbers do not overlap in this example, the labelsassigned to a port can overlap with that of another port on another PE.That is, label numbers should be unique per PE.

Referring to both FIGS. 15 and 17, when PE2 receives the advertisement1710, it sets a {label,egress PE} tuple(s) of the wild card entry(Recall, e.g., 736 and 739 of FIG. 7.) of the (MAC) layer 2 forwardinginformation table associated with TLS=i. More specifically, recall thatthe egress PE of the wildcard entry may be set to the address carried inthe NEXT_HOP of the update. In this case, the PE is set to PE0. Recallalso that the label in the wild card entry for a local port with thePort ID k, may be set to LBm+k−LOm, where the label-block m satisfiesLOm<=k<LOm+LRm. Thus, the first TLS label is set to 1000+4−0=1004, and asecond TLS label is set to 2000+4−0=2004. (Note that a wild card entrylabel is not determined using the offset labels because the label offset(10) does not satisfy the condition that it is less than or equal to theport number (4).) As shown in FIG. 17, the wild card entry for the tablefor TLS=i are updated to include the following tuples: {egress PE=0, TLSlabel=1004}; and {egress PE=0, TLS label=2004}.

Similarly, when PE0 receives the advertisement 1720, it sets a{label,egress PE} tuple(s) of the wild card entry (Recall, e.g., 736 and739 of FIG. 7.) of the (MAC) layer 2 forwarding information tableassociated with TLS=i. In this case, the PE is set to PE2. The TLS labelis set to 4000+0−0=4000. This entry is for any packets that PE0 receiveson the port with Port ID=0. Since Port ID=1 also belongs to TLS=i, PE0also needs to compute a wildcard label for any packets PE0 receives onthe port with Port ID=1 (unless the egress PE is to use double lookupforwarding (exclusively)). For such packets the label will be4000+1−0=4001. Thus, each ingress port has its own forwarding table (atleast conceptually). That is (at least conceptually), on PE 0, there isnot one, but two forwarding tables for TLSi—one used for handlingpackets received on PortID=0, and another used to handle packetsreceived on PortID=1. This allows the egress PE to use single lookup(TLS label→port) forwarding, and avoids the need to use double lookup(TLS label→TLS table, and MAC address→port) forwarding. With the doublelookup forwarding alternative, only one label per TLS need be providedon a PE, even if the PE has more than one port associated with that TLS.

As shown in FIG. 17, the wild card entry for the table for TLS=i isupdated to include the following tuples: {egress PE=2, TLS label=4000}and {egress PE=2, TLS label=4001}.

Recall also that the present invention enables local and remote MACaddress learning. More specifically, it enables a outgoing port to beassociated with a local MAC address and it enables a TLS label and anegress PE to be associated with a remote MAC address. (Recall FIG. 7.)FIG. 18 illustrates such MAC address learning. Assume that a packet 1810arrives on a local port of PE 2. This packet 1810 may be an Ethernetpacket and may include a source MAC address and a destination MACaddress, as well as data. (Note that the present invention may supportLANs other than Ethernet LANs and layer 2 addresses other than MACaddresses.) Assume that the table of PE2 associated with TLS=i does notinclude any remote or local entries having a MAC address that matchesthe destination MAC address of the packet. Recall from block 940 of FIG.9, that the wild card tuple(s) are used in this case. Recall from FIG.17 that these wild card tuples are, or include: {egress PE=0, TLSlabel=1004}; and {egress PE=0, TLS label=2004}. A tunnel label, that isa label to get data to PE0 is known, and may have been determined usinga known protocol, such as an MPLS protocol for example. As shown in FIG.18, packet(s) 1820 may include the original packet 1810, encapsulated inthe TLS label from the wildcard entry and the tunnel label. Although itwould be preferable to send two separate packets 1820 with the twodifferent TLS labels, only one is shown to simplify the drawing.

Ultimately, the packet 1820′ will arrive at PE0. Notice that the packet1820′ is similar to that 1820, but the tunnel label has changed as thepacket progressed along a label-switched path (not shown) between PE2and PE0. PE0 now updates/creates a remote entry(ies) in its (MAC) layer2 forwarding table associated with TLS=i. More specifically, PE0 may usethe TLS label(s) of the packet(s) 1820′ to determine the ingress PE(PE2) and the port (Port ID=4) on the ingress PE where the packet camefrom. (Recall, e.g., 1550 of FIG. 15.) This may be done as follows.

First PE0 searches through the label-blocks that it advertises to otherPEs for the block z that satisfies LBz<=TLS label<LBz+LRz. In thisexample, for the TLS label=1104, the first label-block of port 0satisfies the condition since 1000<=1004<1000+10. Similarly, for the TLSlabel=2004, the first label-block of port 1 satisfies the conditionsince 2000<=2004<2000+20.

In each case, once the label-block is found, the port ID of the ingressport is defined as LOz+TLS_label−LBz. Each case gives the same result.That is, the Port ID=0+1004−1000=4, or 0+2004−2000=4. The label block(s)satisfying the condition also identifies a particular VFI, and thereforea particular TLS that has this port. Using this Port ID and the BGProuting information that PE0 received from PE2, PE0 can determine theaddress of the ingress PE (PE2). (Recall message 1720 of FIG. 17 andfields 1410 and 1430 of the ad 1400 of FIG. 14.) Once PE0 determinesthat the ingress PE is PE2, and the port on PE2 where the packet camefrom as Port ID=4, the PE creates a “remote” type entry with the MACaddress 734 set to the MAC source address of the packet, the egress PE739 set to the address of the ingress PE2, and the TLS label 736 set toa value determined as follows. (Recall 1560 of FIG. 15.) Denoting thePort ID of the port on the ingress PE as k, recall that the TLS label inthe “remote” type entry is set to LBm+k−LOm, where the label-block msatisfies LOm<=k<LOm+LRm. (Note that the above could be precomputed, sothat when the PE receives a packet with a TLS label, a single tablelookup on this label would produce both the address of the ingress PE(the PE where the packet came from), and the TLS label that should gointo the VFI “remote” type entry.) In this example, the TLS labels are4000+0−0=4000 (used for data arriving on port assigned port ID=0), and4000+1−0=4001 (used for data arriving on port assigned port ID=1). Thus,if a particular MAC address, MAC1, is reachable via PortID=0, andanother MAC address, MAC2 is reachable via PortID=1, then PE2 wants tosend data to MAC1 PE2 needs to put different inner label then whensending data to MAC2. In this way, egress PE0 need only perform singlelookup forwarding (just on the label), and avoids the need to performdouble lookup forwarding (first on the label to find the appropriateTLS, and then on the MAC address to find out the specific outgoingport).

Back at PE2, a local type entry for the (MAC) layer 2 forwarding tableassociated with TLS=i (and Port ID=4) may be updated/generated. In thisexample, the MAC address of the entry (Recall, e.g., 734 of FIG. 7.) isset to the source MAC address of the packet 1810, and the outgoing portof the entry (Recall, e.g., 738 of FIG. 7.) is set to the port on whichthe packet 810 was received (i.e., Port ID=4.).

The foregoing example illustrated how the present invention supportsprovisioning and the population of the VFI (e.g., a layer 2 (MAC)forwarding table) based on advertisements and layer 2 (MAC) addresslearning. Now, in § 4.5.2 below, examples illustrating data forwardingusing such information is described.

§ 4.5.2 Data Forwarding Example

Examples of data (e.g., a packet) being forwarded in accordance with thepresent invention are now described with reference to FIGS. 3, 7, 9-12,and 18.

In a first example, assume that a data packet having a destination MACaddress arrives at PE 2 and further assume that the (MAC) layer 2forwarding table (associated with the Port ID that received the packet)has a local type entry having a MAC address (Recall 734 of FIG. 7.) thatmatches the destination MAC address of the packet. In this case, theoutgoing port (Recall 738 of FIG. 7.) of the local type entry is used todetermine the outgoing port of PE 2 on which to place the packet.(Recall, e.g., 920 and 925 of FIG. 9.)

In a second example, referring to FIG. 12A, assume that a packet 1210having a destination MAC address 1212 is received at a port assigned toport ID=0 on PE 0 and further assume that the (MAC) layer 2 forwardingtable (associated with the Port ID that received the packet) has aremote type entry having a MAC address (Recall 734 of FIG. 7.) thatmatches the destination MAC address of the packet. (Recall, e.g., block930 of FIG. 9.) In this case, recall from FIG. 18 that the TLS label 736had been set to 4000 and the egress PE 739 had been set to PE2. Recallfurther from FIG. 17 that the tunnel label to get to PE 2 is “9999”. Asshown in FIG. 12A, the packet 1210 is provided with the TLS label (setto 4000) 1224 and transport encapsulation (e.g., a tunnel label set to“9999”) 1222. (Recall, e.g., blocks 932 and 934 of FIG. 9.) Theresulting packet 1220 is forwarded, using, for example, known forwardingtechniques such as label-switched routing, to PE 2. (Recall, e.g. block936 of FIG. 9.)

Referring to FIG. 12B, which illustrates double lookup forwarding at theegress PE, the packet 1220′ arriving at PE 2 is similar to the packet1220 that left PE 0, but the tunnel label 1222′ will have changed. At PE2, an appropriate (MAC) layer 2 forwarding information table (or VFI) isdetermined based on the TLS label of the received packet. (Recall, e.g.,block 1020 of FIG. 10.) In this example, PE 2 knows that label 4000 isassociated with TLS=i. (Recall, upper right hand portion of FIG. 17which includes a label information base. Recall also association of 710and 730 of FIG. 7.) Then, using the determined VFI, an outgoing port isdetermined based on the destination MAC address 1212 of the packet 1210.(Recall, e.g., columns 734 and 738 of a “local” type entry, whose valueswere entered as a part of local MAC learning.) At this point, the TLSlabel and the tunnel label (if any) may be removed (if they haven'talready been removed earlier). (Recall, e.g., 1040 of FIG. 10.) Finally,the packet is placed on the determined outgoing port. (Recall, e.g.,1050 of FIG. 10.) In this example, assume that the destination MACaddress 1212 of the packet 1210, is that same as the source MAC addressof the packet 1810 of FIG. 18. In this case, the outgoing port would beport ID=4.

FIG. 12C illustrates single lookup forwarding at the egress PE. Here,the TLS label of the packet 1220′ arriving at PE 2 is used (as a key) tolookup a port in the TLS information. (Recall, e.g., 1035 of FIG. 10.)At this point, the TLS label and the tunnel label (if any) may beremoved (if they haven't already been removed earlier). (Recall, e.g.,1040 of FIG. 10.) Finally, the packet is placed on the determinedoutgoing port. (Recall, e.g., 1050 of FIG. 10.)

§ 4.6 CONCLUSIONS

As can be appreciated from the foregoing detailed description, thepresent invention permits a service provider to provide a transparentLAN segment service over a transport network. This service is easy toprovision. Further, it is easy to add more ports. Finally customers canuse a mature, inexpensive technology, such as Ethernet LANs, without thegeographic limitations traditionally found in such technologies.Finally, the service provider's transport network is protected againstmalicious or incompetent customers.

1. For use in an edge device of a transport network adapted to provide atransparent LAN segment service, a method, implemented by one or moreprocessors, for processing ingress data received by a port of the edgedevice, the method comprising: a) selecting a set of forwardinginformation based on the port on which the data is received, wherein theforwarding information includes at least one entry including a layer 2address, a label associated with the layer 2 address, and an edge deviceidentifier associated with the layer 2 address; b) selecting one of theat least one entry of the selected forwarding information based on alayer 2 address of the ingress data received; c) adding the label of theselected one of the at least one entry of the selected forwardinginformation to the ingress data received to generate modified data; andd) forwarding the modified data towards an edge device identified by theedge device identifier of the selected one of the at least one entry ofthe selected forwarding information, wherein the act of selecting one ofthe at least one entry of the selected forwarding information isperformed by attempting to match the layer 2 address of the ingress datareceived with the layer 2 address of each of the at least one entry, andwherein if the layer 2 address of the ingress data received does notmatch the layer 2 address of any of the at least one entry, then theselected entry does not include a layer 2 address, but does include atleast one set of associated information, each of the at least one set ofassociated information including a label and an associated edge deviceidentifier.
 2. The method of claim 1 wherein the ingress data receivedis an Ethernet packet and wherein each layer 2 address is a media accesscontrol address.
 3. The method of claim 1 wherein the act of forwardingthe modified data towards an edge device identified by the edge deviceidentifier of the selected one of the at least one entry of the selectedforwarding information includes i) determining a second label based onthe edge device identifier, ii) applying the second label to themodified data to generate encapsulated modified data, and iii) placingthe encapsulated modified data on a label-switched path.
 4. For use inan edge device of a transport network adapted to provide a transparentLAN segment service, a method, implemented by one or more processors,for processing ingress data received by a port of the edge device, themethod comprising: a) selecting a set of forwarding information based onthe port on which the data is received, wherein the forwardinginformation includes at least one entry including a layer 2 address, alabel associated with the layer 2 address, and an edge device identifierassociated with the layer 2 address; b) selecting one of the at leastone entry of the selected forwarding information based on a layer 2address of the ingress data received; c) adding the label of theselected one of the at least one entry of the selected forwardinginformation to the ingress data received to generate modified data; andd) forwarding the modified data towards an edge device identified by theedge device identifier of the selected one of the at least one entry ofthe selected forwarding information, wherein the port of the edge deviceis associated with a set of labels and a particular transparent LANsegment, and wherein the set of labels is defined by a label base and alabel range.
 5. The method of claim 4 wherein the set of labels isfurther defined by a label block offset, a second label base, and asecond label range.
 6. For use in an edge device of a transport networkadapted to provide a transparent LAN segment service, a method,implemented by one or more processors, for processing egress data,having a label, received by the edge device, the method comprising: a)determining a port of the edge device based on at least one of the labeland a layer 2 address of the egress data; and b) providing at least apart of the egress data to the port determined, wherein the act ofdetermining a port of the edge device based on the label and a layer 2address of the egress data includes i) selecting a label block based onthe label of the egress data, ii) determining a port identifier based onthe label block selected and the label, iii) selecting a set offorwarding information based on the port identifier determined, whereinthe forwarding information includes at least one entry including a layer2 address and a port associated with the layer 2 address, iv) selectingone of the at least one entry of the selected forwarding informationbased on a layer 2 address of the egress data received, and v)determining the port of the edge device to be the port associated withthe layer 2 address of the selected one of the at least one entry of theselected forwarding information.
 7. The method of claim 6 wherein thedetermined port identifier is associated with a transparent LAN segment,wherein the act of selecting one of the at least one entry of theselected forwarding information is performed by attempting to match thelayer 2 address of the egress data with the layer 2 address of each ofthe at least one entry, and wherein if the layer 2 address of the egressdata does not match the layer 2 address of any of the at least oneentry, then at least a part of the egress data is placed on all localports of the edge device that are associated with the transparent LANsegment.
 8. The method of claim 6 wherein the egress data is an Ethernetpacket provided with a label, and wherein each layer 2 address is amedia access control address.
 9. The method of claim 6 wherein the portof the edge device is associated with a set of labels and a particulartransparent LAN segment.
 10. The method of claim 9 wherein the set oflabels is defined by a label base and a label range.
 11. For use in anedge device of a transport network adapted to provide a transparent LANsegment service, a method, implemented by one or more processors, forprocessing egress data, having a label, received by the edge device, themethod comprising: a) determining a port of the edge device based on atleast one of the label and a layer 2 address of the egress data; and b)providing at least a part of the egress data to the port determined,wherein the act of determining a port of the edge device based on thelabel and a layer 2 address of the egress data includes i) selecting aset of forwarding information based on the label of the egress data,wherein the forwarding information includes at least one entry includinga layer 2 address and a port associated with the layer 2 address, ii)selecting one of the at least one entry of the selected forwardinginformation based on a layer 2 address of the egress data received, andiii) determining the port of the edge device to be the port associatedwith the layer 2 address of the selected one of the at least one entryof the selected forwarding information, and wherein the act of selectingone of the at least one entry of the selected forwarding information isperformed by attempting to match the layer 2 address of the egress datawith the layer 2 address of each of the at least one entry.
 12. For usein an edge device of a transport network adapted to provide atransparent LAN segment service, a method, implemented by one or moreprocessors, for processing egress data, having a label, received by theedge device, the method comprising: a) determining a port of the edgedevice based on at least one of the label and a layer 2 address of theegress data; and b) providing at least a part of the egress data to theport determined, wherein the port of the edge device is associated witha set of labels and a particular transparent LAN segment, and whereinthe set of labels is defined by a first label base, a first label range,a label block offset, a second label base, and a second label range. 13.A method, implemented by one or more processors, for generating, by atransport network edge device, information about a newly added portbelonging to a transparent LAN segment, to be disseminated to other edgedevices of the transport network, the method comprising: a) obtaining alabel base value and a label range value associated with the newly addedport; b) generating at least one message, the at least one messagecollectively including i) a first field for identifying the transportnetwork edge device; ii) a second field for identifying the transparentLAN segment to which the newly added port belongs; iii) a third fieldfor identifying the newly added port; iv) a fourth field for identifyingthe range value; and v) a fifth field for identifying the label base.14. The method of claim 13 further comprising: defining a set of labelsbased on the label base value and the label range value.
 15. The methodof claim 14 wherein the set of labels is contiguous.
 16. The method ofclaim 13 wherein a value in the third field for identifying the newlyadded port is unique within the transparent LAN segment identified inthe second field.
 17. The method of claim 13 further comprising: c)sending the message towards other edge devices of the transport network.18. The method of claim 17 wherein the message is associated with agroup for targeting the distribution of the message.
 19. The method ofclaim 18 wherein the message is sent using a border gateway protocol,and wherein the group is a route target BGP extended community.
 20. Themethod of claim 13 wherein the at least one message further collectivelyincludes: vi) a sixth field for defining a second label base, vii) aseventh field for defining a second label range associated with thesecond label base, and viii) an eighth field for defining a label blockoffset associated with the second label base and the second label range.21. A method, implemented by one or more processors, for processing, bya first transport network edge device, information about a newly addedport of a second transport network edge device belonging to atransparent LAN segment, the method comprising: a) determining a labelfor getting to newly added port of the second transport network edgedevice based on the information; b) determining an identity of thesecond transport network edge device based on the information; and c)generating an entry of a forwarding table used by the first transportnetwork edge device and associated with the transparent LAN segment, theentry including the label determined and the identity of the secondtransport network edge device, wherein the entry associates the labeldetermined and the identity of the second transport network edge device.22. The method of claim 21 wherein the information about a newly addedport includes: a first value identifying the second transport networkedge device; a second value identifying the transparent LAN segment; athird value identifying the newly added port; a fourth value identifyinga label range associated with the newly added port; and a fifth valueidentifying a label base associated with the newly added port.
 23. Themethod of claim 22 wherein the forwarding table is associated with thetransparent LAN segment identified by the second value of theinformation, and wherein the entry is associated with a local port ofthe first transport network edge device.
 24. The method of claim 23wherein the act of determining a label for getting to newly added portof the second transport network edge device based on the informationincludes determining a value based on the local port of the firsttransport network and the label base identified by the fifth value. 25.The method of claim 22 wherein the information about a newly added portfurther includes: a sixth value identifying a second label rangeassociated with the newly added port; a seventh value identifying asecond label base associated with the newly added port; and an eighthvalue identifying a label block offset associated with the second labelrange and the second label base.
 26. The method of claim 21 wherein theinformation is included in a message associated with group for targetingthe distribution of the message.
 27. The method of claim 26 wherein themessage is sent using a border gateway protocol, and wherein the groupis a route target BGP extended community.
 28. The method of claim 27wherein the forwarding table is associated with the same route targetBGP extended community as that of the message.
 29. For use by an egressedge device of a transport network supporting a transparent LAN segmentservice, a method, implemented by one or more processors, for populatinga forwarding table associated with a transparent LAN segment based ondata received, the data received including a label and a layer 2 sourceaddress, the method comprising: a) determining an edge device of thetransport network on which the data entered the transport network basedon the label of the data received; b) determining a port of thedetermined edge device on which the data entered the determined edgedevice based on the label of the data received; and c) generating anentry in the forwarding table, the entry including i) a layer 2 addressset to the layer 2 source address of the data, ii) an egress edge deviceidentifier based on the determined edge device, and iii) a labelassociated with the determined port, wherein the egress edge devicestores label information associated with the port determined, andwherein the port is determined based on the stored label information andthe label of the data received.
 30. The method of claim 29 wherein thelabel information includes a label base, and a label range, wherein thelabel of the data received is greater than or equal to the label base,but is less than the sum of the label base and the label range, andwherein the port is determined based on the label of the data receivedand the label base.
 31. The method of claim 30 wherein the labelinformation further includes a label block offset, and wherein the portis determined based on the label of the data received, the label baseand the label block offset.
 32. The method of claim 29 wherein the datareceived is an Ethernet packet and wherein each of the layer 2 addressesis a media access control address.
 33. A storage device storingprocessor-executable instructions which, when executed by a processor,perform a method for processing ingress data received by a port of theedge device, the method comprising: a) selecting a set of forwardinginformation based on the port on which the data is received, wherein theforwarding information includes at least one entry including a layer 2address, a label associated with the layer 2 address, and an edge deviceidentifier associated with the layer 2 address; b) selecting one of theat least one entry of the selected forwarding information based on alayer 2 address of the ingress data received; c) adding the label of theselected one of the at least one entry of the selected forwardinginformation to the ingress data received to generate modified data; andd) forwarding the modified data towards an edge device identified by theedge device identifier of the selected one of the at least one entry ofthe selected forwarding information, wherein the port of the edge deviceis associated with a set of labels and a particular transparent LANsegment, and wherein the set of labels is defined by a label base and alabel range.
 34. A storage device storing processor-executableinstructions which, when executed by a processor, perform a method forprocessing egress data, having a label, received by the edge device, themethod comprising: a) determining a port of the edge device based on atleast one of the label and a layer 2 address of the egress data; and b)providing at least a part of the egress data to the port determined,wherein the port of the edge device is associated with a set of labelsand a particular transparent LAN segment, and wherein the set of labelsis defined by a first label base, a first label range, a label blockoffset, a second label base, and a second label range.
 35. A storagedevice storing processor-executable instructions which, when executed bya processor, perform a method for generating, by a transport networkedge device, information about a newly added port belonging to atransparent LAN segment, to be disseminated to other edge devices of thetransport network, the method comprising: a) obtaining a label basevalue and a label range value associated with the newly added port; b)generating at least one message, the at least one message collectivelyincluding i) a first field for identifying the transport network edgedevice; ii) a second field for identifying the transparent LAN segmentto which the newly added port belongs; iii) a third field foridentifying the newly added port; iv) a fourth field for identifying therange value; and v) a fifth field for identifying the label base.
 36. Astorage device storing processor-executable instructions which, whenexecuted by a processor, perform a method for processing, by a firsttransport network edge device, information about a newly added port of asecond transport network edge device belonging to a transparent LANsegment, the method comprising: a) determining a label for getting tonewly added port of the second transport network edge device based onthe information; b) determining an identity of the second transportnetwork edge device based on the information; and c) generating an entryof a forwarding table used by the first transport network edge deviceand associated with the transparent LAN segment, the entry including thelabel determined and the identity of the second transport network edgedevice, wherein the entry associates the label determined and theidentity of the second transport network edge device.
 37. A storagedevice storing processor-executable instructions which, when executed bya processor, perform a method for populating a forwarding tableassociated with a transparent LAN segment based on data received, thedata received including a label and a layer 2 source address, the methodcomprising: a) determining an edge device of the transport network onwhich the data entered the transport network based on the label of thedata received; b) determining a port of the determined edge device onwhich the data entered the determined edge device based on the label ofthe data received; and c) generating an entry in the forwarding table,the entry including i) a layer 2 address set to the layer 2 sourceaddress of the data, ii) an egress edge device identifier based on thedetermined edge device, and iii) a label associated with the determinedport, wherein the egress edge device stores label information associatedwith the port determined, and wherein the port is determined based onthe stored label information and the label of the data received.